Step 1: Define the problem

Step 2: Data cleaning / preprocessing & Feature Engineering

Loại bỏ các biến thừa không cung cấp thông tin hữu ích nào cho việc phân tích

Data Formating

Loại bỏ các giá trị bị khuyết

Loại bỏ các giá trị trùng lặp

Đặt tên lại cho các cột

Phát hiện và loại bỏ outliers

=> Có thể không cần loại bỏ Outliers vì số lượng không đáng kể

Feature Engineering

Thêm Feature xác định Ngày lễ ở Hoa Kỳ

Thêm Feature cho giờ hành chính (giờ làm việc)

Tạo thêm các Features mới từ cột Datetime

Exploratory Data Analysis (EDA)

=> Tội phạm thuộc loại Larceny Theft, cao hơn đáng kể so với bất kỳ loại tội phạm nào khác

Phân tích theo Resolution

=> Hầu hết các sự cố đều đang được tiến hành xử lý

=> Ma túy, vi phạm giao thông và lệnh bắt giữ là 3 lý do hàng đầu cho các vụ bắt giữ

Phân tích theo Quận

=> Quận Central là nơi ghi nhận nhiều tội phạm nhất và quận Park là nơi ít tội phạm nhất ở San Francisco

=> Mặc dù có ít tội phạm hơn được ghi nhận ở quận Tenderlion nhưng tỷ lệ bắt giữ ở đây khá cao 36,09%

Phân tích theo Thời gian

=> Thứ 6 là ngày mà tội phạm được ghi nhận nhiều nhất, tiếp theo là Thứ 4. Chủ nhật là ngày ít tội phạm nhất

=> Hãy cẩn thận vào buổi tối. Gần 1/4 số vụ tội phạm xảy ra vào buổi tối

=> Buổi tối thường là lúc có nhiều vụ phạm tội, tối Thứ 6 đặc biệt tồi tệ và tối Chủ nhật tương đối tốt hơn

=> Tháng 1 là tháng có nhiều tội phạm nhất

=> Ngày 1/1 dường như là ngày có số tội phạm được ghi nhận cao nhất và ngày 25/12 là ngày có số tội phạm được ghi nhận ít nhất

Phân tích Time Series

=> Không có ngày nào là bình yên (không có bất kỳ sự cố nào xảy ra)

=> Liệu các thay đổi này có đúng cho các loại tội phạm riêng lẻ ? Ta sẽ thử với Larceny Theft

=> Nó thực sự không khác nhau nhiều

Do dữ liệu chỉ được ghi cho đến ngày 4 tháng 12 năm 2020, nên ta sẽ không dùng dữ liệu của tháng 12 năm 2020 trở đi

=> Ta có thể thấy rằng có sự giảm mạnh từ tháng 7 có thể là do ảnh hưởng của Covid-19

Ở đây, những danh sách tội phạm này có thể được khám phá và mô hình hóa thêm nếu có thêm dữ kiện của nhiều năm trước:

Phân tích theo Mô tả

Phân tích theo Phân bố không gian (Spatial Distribution)

=> Cặp tọa độ phổ biến nhất (-122.40733700000001, 37.78456014) là vị trí của Market St

=> Ta có thể thấy có nhiều tội phạm hơn ở phần đông bắc của San Francisco. Câu hỏi đặt ra rằng liệu điều này có luôn như vậy trong suốt các năm qua không ?

Ta sẽ xem liệu phân phối có bất kỳ thay đổi đáng kể nào không:

=> Có vẻ như phần đông bắc của San Francisco luôn là khu vực nguy hiểm nhất

Trực quan hóa không gian địa lý

Step 3 : Model selection & Trainning

Chuẩn bị dữ liệu cho model

Encoding

Xử lý các danh mục không phổ biến (uncommon category)

=> Do dữ liệu khá nhiều nên có thể dùng under sampling để cân bằng các nhãn

Xử lý dữ liệu mất cân bằng

Lưu mới dataset được dùng cho model

Lựa chọn model phù hợp

=> Sử dụng RandomForestClassifier vì có độ chính xác cao nhất

Áp dụng Grid SearchCV để tìm mô hình tốt nhất

Step 4: Evaluate & test the model results & performance

Confusion matrix

Precision, Recall, F1-score

Step 5: Deploy the model